昨天介紹了演算法,透過程式配合目的來進行描述,今天來介紹搜尋演算法的種類。
在複雜的演算法只要細想,就能發現是由很多個步驟組成的,面對不同的資料結構,也會選擇不同的搜尋方法。
首先,最常見的方法就是線型搜尋。從最頂端或任何一筆開始搜尋,但跟其他方法比起來,比較沒有效率。如果是有按照編號排序,可以選用二分法搜尋,就可以較快鎖定資料在哪一個區域。
其次,資料雖然都能以清單呈現,但很多資料的內容都會有相關性,比如:客戶、商品、服務等,彼此都是有相關性的情形,這時就可以使用圖形結構或樹狀結構以網路連結的方式呈現。
廣度優先搜尋就是查找橫向的資料,深度優先搜尋就是向下查找每一欄的資料,透過資料關聯性評估哪個區域的最佳優先搜尋。清單式結構的資料如果可以轉換成圖形結構或樹狀結構,就能達到比使用清單式搜尋更快找到目標的成效。
前面講到的二分搜尋法,雖然可以較穩定且快速的查找資料,但前提是資料必須依照特定規則整齊排列,否則就不適合這個搜尋法,所以將資料排序好是很重要的一件事。將手上的資料依據特定的規則來進行排序,使資料變的更容易查閱,這就稱排序演算法
面對毫無整理的資料,即使是高速搜尋性能的電腦,也需要很多時間查找資料。